home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / mbcache.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  53 lines

  1. /*
  2.   File: linux/mbcache.h
  3.  
  4.   (C) 2001 by Andreas Gruenbacher, <a.gruenbacher@computer.org>
  5. */
  6.  
  7. /* Hardwire the number of additional indexes */
  8. #define MB_CACHE_INDEXES_COUNT 1
  9.  
  10. struct mb_cache_entry {
  11.     struct list_head        e_lru_list;
  12.     struct mb_cache            *e_cache;
  13.     unsigned short            e_used;
  14.     unsigned short            e_queued;
  15.     struct block_device        *e_bdev;
  16.     sector_t            e_block;
  17.     struct list_head        e_block_list;
  18.     struct {
  19.         struct list_head    o_list;
  20.         unsigned int        o_key;
  21.     } e_indexes[0];
  22. };
  23.  
  24. struct mb_cache_op {
  25.     int (*free)(struct mb_cache_entry *, int);
  26. };
  27.  
  28. /* Functions on caches */
  29.  
  30. struct mb_cache * mb_cache_create(const char *, struct mb_cache_op *, size_t,
  31.                   int, int);
  32. void mb_cache_shrink(struct mb_cache *, struct block_device *);
  33. void mb_cache_destroy(struct mb_cache *);
  34.  
  35. /* Functions on cache entries */
  36.  
  37. struct mb_cache_entry *mb_cache_entry_alloc(struct mb_cache *);
  38. int mb_cache_entry_insert(struct mb_cache_entry *, struct block_device *,
  39.               sector_t, unsigned int[]);
  40. void mb_cache_entry_release(struct mb_cache_entry *);
  41. void mb_cache_entry_free(struct mb_cache_entry *);
  42. struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *,
  43.                       struct block_device *,
  44.                       sector_t);
  45. #if !defined(MB_CACHE_INDEXES_COUNT) || (MB_CACHE_INDEXES_COUNT > 0)
  46. struct mb_cache_entry *mb_cache_entry_find_first(struct mb_cache *cache, int,
  47.                          struct block_device *, 
  48.                          unsigned int);
  49. struct mb_cache_entry *mb_cache_entry_find_next(struct mb_cache_entry *, int,
  50.                         struct block_device *, 
  51.                         unsigned int);
  52. #endif
  53.